package main

// fibonacci 函数使用递归方式计算斐波那契数列。
// 该函数接收一个整数 n 作为参数，返回数列中第 n 个数的值。
// 斐波那契数列的规则是数列中的每个数是前两个数的和，底数为：
// fibonacci(0) = 1, fibonacci(1) = 1。此方法由于其指数时间复杂度，
// 不适合计算非常大的 n 值。

import "fmt"

func main() {
	// 初始化结果变量为0，用于存储斐波那契数列的计算结果。
	result := 0
	// 循环从0到10，计算斐波那契数列中相应位置的值。
	for i := 0; i <= 10; i++ {
		// 调用 fibonacci 函数计算第 i 个斐波那契数。
		result = fibonacci(i)
		// 输出计算结果。
		fmt.Printf("fibonacci(%d) is: %d\n", i, result)
	}
}

// fibonacci 函数是递归实现的斐波那契数列计算方法。
// 它接受一个整数 n 作为参数，返回数列中第 n 个数的值。
// 当 n 小于等于1时，直接返回1，否则返回前两个斐波那契数的和。
func fibonacci(n int) (res int) {
	if n <= 1 {
		res = 1
	} else {
		res = fibonacci(n-1) + fibonacci(n-2)
	}
	return
}
